المفتاح
الأساسي
اشترط Codd في
قاعدته
الثانية ضمان
الوصول إلى كل
معلومة في أي
خلية (تقاطع
عمود مع سطر).
أنت تحدد اسم
الجدول واسم
العمود
(أحياناً يسمى
الحقل) ثم ... هنا
النقطة. يجب
أن تملك وسيلة
تحدد فيها
سطراً معيناً
من مجموعة
صفوف الجدول.
لن تستطيع ذلك
ما لم يكن
لديك مفتاح.
المفتاح هو
قيمة خاصة بصف
محدد ممكن
استخدامها
للوصول إلى
ذلك الصف. هذا
يتضمن أن تكون
هذه القيمة:
1.
موجودة.
2. فريدة.
القيمة
قد تقع في
عمود أو أكثر
لكنها لا
تتكرر في أكثر
من صف واحد،
وإلا لم يمكن
استخدامها لتحديد
صف واحد
بالضبط. هذه
القيمة (التي
قد تكون مركبة
composite من
عمودين أو
أكثر) تسمى
المفتاح
الأساسي للجدول
primary
key.
هذا شرط أساسي
في النموذج
العلائقي: لا
بد لكل جدول
من مفتاح
أساسي.
دعنا
الآن نوضح
مفهوم
المفتاح
الأساسي بمثال.
في جدول
المتقدمين
لوظيفة ممكن
أن نعطي كل متقدم
رقماً فريداً
(بطريقة ما)
بحيث نستطيع
فيما بعد
تحديد هذا
المتقدم
برقمه. هذا
الرقم سيكون
عموداً من
أعمدة الجدول
بالطبع، لكن
يجب عدم تركه
فارغاً وضمان
عدم تكراره.
كل برنامج
إدارة قواعد
بيانات يحترم
نفسه سيفرض
هذين الشرطين.
الأكسس يفعل
ذلك أيضاً،
والمفتاح
الأصفر
الصغير الذي
تضعه بجانب
أحد الحقول
عند تصميم
الجدول يمثل
مفتاح الجدول
الأساسي. لاحظ
أننا لم نختر
اسم المتقدم
مثلاً أو
تاريخ ميلاده
كمفتاح أساسي
للجدول لأنه
يمكن جداً
تشابه
متقدمين في
الاسم أو
تاريخ
الميلاد،
وهذا لا ينفع
في قاعدة بيانات
علائقية.
المفتاح
الأساسي لا
يمكن أن يتكرر
في صفين
مختلفين... هل
من الممكن أن
نختار إذاً
مفتاحاً
مركباً من
عمودي الاسم
وتاريخ الميلاد؟
ممكن، على
افتراض أنه من
المستبعد جداً
تشابه
متقدمين
اثنين في
الاسم وتاريخ
الميلاد، لكن
من المحبذ
دائماً في
المفتاح الأساسي
أن يكون:
1.
صغيراً قدر
الإمكان.
2. ثابتاً
قدر الإمكان.
3.
بسيطاً قدر
الإمكان.
4.
مألوفاً قدر
الإمكان.
هذا
يعني أن
المفتاح ذا
الحقل الواحد
أفضل من المفتاح
ذي الحقلين أو
أكثر. هذا على
الأقل يسهل
كتابة
البرامج
والاستعلامات
فيما بعد علاوة
على تخفيف عبء
المعالجة.
الثباتية
تعني معدل
احتمالية تغير
المفتاح. على
سبيل المثال،
تغير اسم
المتقدم
احتماله أكثر
من تغير رقمه
الذي يعطيه
إياه قسم
الشؤون
الإدارية أو
النظام الآلي.
لا حاجة البتة
لتغيير
الرقم، في حين
أن الاسم قد
يتغير على
الأقل بسبب
اكتشاف خطأ في
إدخاله من البداية.
ويمكنك أن
تتفق معي في
أن المفتاح
الذي لا يتغير
خير من
المفتاح الذي
يتغير. من
المستحب
أيضاً أن تكون
معالجة
المفتاح خفيفة
وسريعة كما
أشرنا في
النقطة
الأولى. معالجة
الأرقام بشكل
عام أسرع من
معالجة سلاسل
الحروف. في
الأخير، كلما
كان المفتاح
مألوفاً للمستخدم
وسهل التذكر
كان هذا أفضل
في حالة كتابة
الاستعلامات
وتحديد
المراد. هذا
يتحقق إذا كان
للمفتاح معنى
في الحياة
العملية. لذلك
تجد من ينصح
بعدم استخدام
أرقام مولدة
تلقائياً من
النظام
كمفتاح أساسي.
في حالة كحالة
أرقام
المتقدمين،
وهل لها معنى
في الحياة العملية
أم لا، تستطيع
موازنة
الإيجابيات
والسلبيات
واختيار ما
تراه مناسباً.
في النهاية أنت
المصمم
والمبرمج،
والخطأ الذي
ترتكبه عند التصميم
ستدفع غالباً
ثمنه عند
البرمجة. حظاً
سعيداً.
فقط من
باب إكمال
موضوع
المفتاح
الأساسي، قد تجد
أحياناً أن
أكثر من حقل
(أو مجموعة
حقول) تصلح
كمفتاح،
تماماً كما هو
الحال في رقم
المتقدم أو
اسمه مع تاريخ
ميلاده. كل الحقول
المفردة أو
المركبة التي
تصلح لأن تكون
مفاتيح
أساسية (لأنها
لا تتكرر في
أكثر من سطر)
تسمى مفاتيح
مرشحة candidate keys، والمفتاح
الذي يقع عليه
اختيارك
كمصمم يسمى
المفتاح
الأساسي primary key، أما
المفاتيح الباقية
فتسمى بعدئذ
مفاتيح بديلة alternative
keys.
نعم، هو مجرد
هوس آخر
بالمصطلحات
والتسميات التي
تجعل الموضوع
يبدو رهيباً.